home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Applications / Misc / Crossword / Source / StopWatch.m < prev    next >
Text File  |  1992-10-11  |  892b  |  58 lines

  1. /*
  2.  
  3. File StopWatch.m
  4.  
  5. A stopwatch can be stopped, started, and reset.
  6.  
  7. */
  8.  
  9. #import "StopWatch.h"
  10.  
  11. #import <sys/resource.h>
  12.  
  13.  
  14. /* ————————————————————————————————————————————————————————————————————————————  */
  15.  
  16.  
  17. @implementation StopWatch
  18.  
  19. - (float) getTime        {    return time;    }
  20.  
  21.  
  22. /* ————————————————————————————————————————————————————————————————————————————  */
  23.  
  24.  
  25. - reset
  26. {
  27.     time = 0.0;
  28.     return self;
  29. }
  30.  
  31.  
  32. - start
  33. {
  34.     struct rusage    rusage;
  35.     
  36.     getrusage(RUSAGE_SELF, &rusage);
  37.     beganAt = rusage.ru_utime.tv_sec + rusage.ru_stime.tv_sec;
  38.     beganAt += .000001 * (rusage.ru_utime.tv_usec + rusage.ru_stime.tv_usec);
  39.     
  40.     return self;
  41. }
  42.  
  43.  
  44. - stop
  45. {
  46.     struct rusage    rusage;
  47.     float            endAt;
  48.     
  49.     getrusage(RUSAGE_SELF, &rusage);
  50.     endAt = rusage.ru_utime.tv_sec + rusage.ru_stime.tv_sec;
  51.     endAt += .000001 * (rusage.ru_utime.tv_usec + rusage.ru_stime.tv_usec);
  52.     time += endAt - beganAt;
  53.     
  54.     return self;
  55. }
  56.  
  57.  
  58. @end